package cn.design;

import cn.design.realize.FolderFile;
import cn.design.realize.SqlFile;
import cn.design.realize.TextFile;
import cn.design.realize.ImageFile;

/**
 * @author dlq
 * @description
 * @date 2020/9/17 10:08
 * @since 1.0
 */
public class CompositeClientTest {
    public static void main(String[] args) {
        // 例子:
        // 文件夹里面有文件(具体的文件，如:aaa.txt.bb.sql等)，还有文件夹，
        // 就如我们电脑中的一个文件夹一样 :
        // 总的文件夹：  all
        // 文件夹 all 下面有 两个 图片(ImageFile),一个 SqlFile + 文件夹 A +文件B
        //文件夹A 下面有 一个 2 text文本 (TextFile),文件B没有东西

        //1. 总的文件夹：  all
        FolderFile folderFileAll = new FolderFile("all");
        //2. 文件夹 A 、B
        FolderFile folderFileA = new FolderFile("A");
        FolderFile folderFileB = new FolderFile("B");

        //3.--- 两个 图片(ImageFile)  一个 SqlFile 两个text文本 (TextFile)
        ImageFile imageFile11= new ImageFile("11.image");
        ImageFile imageFile22= new ImageFile("22.image");

        SqlFile sqlFile=new SqlFile("mysq.sql");

        TextFile textFileAA = new TextFile("aa.text");
        TextFile textFileABB = new TextFile("bb.text");

        //文件夹A 下面有 一个 2 text文本 (TextFile)
        //文件夹A  添加文件
        folderFileA.addFile(textFileAA);
        folderFileA.addFile(textFileABB);

        // 文件夹 all 下面有 两个 图片(ImageFile),一个 SqlFile + 文件夹 A +文件B
        //all添加文件和文件夹
        folderFileAll.addFile(folderFileA);
        folderFileAll.addFile(folderFileB);
        folderFileAll.addFile(sqlFile);
        folderFileAll.addFile(imageFile11);
        folderFileAll.addFile(imageFile22);

        //遍历文件
        folderFileAll.foreach();


    }
}
